package com.swak.boot.config.jdbc.database;

import java.util.List;

import org.springframework.boot.context.properties.ConfigurationProperties;

import com.swak.Constants;
import com.swak.utils.Lists;

import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 数据库的配置
 * 
 * @author lifeng
 */
@Data
@ConfigurationProperties(prefix = Constants.DATASOURCE_PREFIX)
public class DynamicDataSourceProperties {

	/**
	 * 动态数据源配置
	 */
	private Dynamic dynamic;

	/**
	 * 动态数据源配置
	 * 
	 * @author 618lf
	 */
	@Data
	public static class Dynamic {

		/**
		 * 必须设置默认的库,默认master
		 */
		private String primary = "master";

		/**
		 * 所有的数据源
		 */
		private List<Config> datasources = Lists.newArrayList();
	}

	/**
	 * 数据库配置
	 * 
	 * @author 618lf
	 */
	@Data
	@EqualsAndHashCode(callSuper = false)
	public static class Config extends DataSourceProperties {
		private String group;
	}
}